Branch Behavior of Java Runtime Systems and its Microarchitectural Implications

نویسندگان

  • Tao Li
  • Lizy Kurian John
  • Vijaykrishnan Narayanan
  • Anand Sivasubramaniam
چکیده

Java programs are becoming increasingly prevalent on numerous platforms ranging from embedded systems to high-end servers. Dynamic translation (interpretation and compilation), frequent calls to native interface libraries or operating system kernel services and abundant usage of virtual methods by Java programs can complicate the intrinsic predictability of the control flows that can be exploited by an ILP machine. An in-depth look and understanding of the implications on the underlying microarchitecture can either guide architects to design efficient Java processors or finely tune the performance of a Java run time system on general purpose, wide issue machines. To our knowledge, this paper presents the first insight on branch behavior of a standard JVM running on a commercial operating system using real workloads. Employing a complete system simulation environment, we profile and quantify the performance of branch prediction structures for both user and kernel executions. The impact of different JVM styles (JIT compiler and interpreter) on branch behavior is also studied. We find that: (1) kernel instructions and kernel branches play an important role in the execution of a Java program; (2) the studied JVM contains fairly large number of static conditional branches with an average of 38K in JIT mode and 30K in interpreter mode, as opposed to 5.5K in SPECInt95; (3) a major part of the dynamic indirect branches are multiple target (polymorphic) branches; (4) kernel and user codes in a Java run time system use the underlying speculative mechanisms in different styles. We propose a split branch predictor structure that separates branch instruction stream into kernel and user parts based on the processor’s execution mode and use an optimized and cost-effective prediction mechanism for each. Simulations using SPECjvm98 show this technique improves prediction accuracy by reducing destructive branch aliasing between kernel and user codes. Since this scheme requires the access to only one of these smaller modules (kernel or user) for a given branch instruction mode, it also results in energy savings.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

The Impact of Java Applications at Microarchitectural Level from Branch Prediction Perspective

The portability, the object-oriented and distributed programming models, multithreading support and automatic garbage collection are features that make Java very attractive for application developers. The main goal of this paper consists in pointing out the impact of Java applications at microarchitectural level from two perspectives: unbiased branches and indirect jumps/calls, such branches li...

متن کامل

Investigating the Interaction between Java Programs and Virtual Machines at the Microarchitectural Level

In recent years, Java workloads are becoming increasingly prominent on the entire scale of computing devices, ranging from small PDA-like systems to high-end web servers. It becomes thus increasingly important to understand the implications of all the aspects involved when running Java applications when a system is designed. This means that first of all, the interactions between the Java applic...

متن کامل

Improving Branch Predictability in Java Processing

Java programs are becoming increasingly prevalent on numerous platforms ranging from embedded systems to enterprise servers. Dynamic translation (interpretation and compilation), frequent calls to native interface libraries or OS kernel services and abundant usage of virtual methods by Java programs can complicate the intrinsic predictability of the control flow that can be exploited by an ILP ...

متن کامل

Rehashable BTB: An Adaptive Branch Target Buffer to Improve the Target Predictability of Java Code

Abstract. Java programs are increasing in popularity and prevalence on numerous platforms, including high-performance general-purpose processors. The dynamic characteristics of the Java runtime system present unique performance challenges for several aspects of microarchitecture design. In this work, we focus on the effects of indirect branches on branch target address prediction performance. R...

متن کامل

Architectural Issues in Java Runtime Systems

The Java Virtual Machine (JVM) is the corner stone of Java technology, and its eeciency in executing the portable Java bytecodes is crucial for the success of this technology. Interpretation, Just-In-Time (JIT) compilation , and hardware realization are well known solutions for a JVM, and previous research has proposed optimizations for each of these techniques. However, each technique has its ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2000